<?php
/*
Cogumelo v0.1 - Innoto
Copyright (C) 2009 Innoto Gestión para el Desarrollo Social S.L. <mapinfo@innoto.es>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
USA.
*/

	// Configuration File
	require_once("Classes/controller_configuration.inc");
	require_once("Classes/Controllers/Log/LogControllerFactory.inc");
	require_once("Classes/Controllers/Error/ErrorControllerFactory.inc");
	

	// Including specific DAO factory of DBMS , for example "mysqlDAOFactory.inc"
	include("Classes/DBMS/".SYS_DBMS."/".SYS_DBMS."DAO/".SYS_DBMS."DAOFactory.inc");
	include("Classes/DBMS/".SYS_DBMS."/".SYS_DBMS."DB/".SYS_DBMS."ConnectionFactory.inc");

	
//
// Facade Class
//

class Facade 
{
	var $datasrc;
	var $connsrc;

	var $connectioncontrol;
	var $connection;
	
	protected $errorcontrol;
    protected $logcontrol;
	
	//
	// Constructor Selects the specific database controller 
	//
	public function __construct()
	{
	
	   //initialize Log and error controllers
	   $this->errorcontrol=ErrorControllerFactory::getErrorController();      
	   $this->logcontrol=LogControllerFactory::getLogController();
	   $this->logcontrol->setAutodump(true);

	   switch (SYS_DBMS)
		{
			case "Mysql":
				$this->datasrc = new MysqlDAOFactory(SYS_DBMS);
				$this->connsrc = new MysqlConnectionFactory();
				break;
			case "SQLite":
				$this->datasrc = new SQLiteDAOFactory(SYS_DBMS);
				$this->connsrc = new SQLiteConnectionFactory();
				break;
		}
	}
	
	
	public function OpenConnection()
	{
		$this->connectioncontrol = $this->connsrc->getConnection();
		$this->connection = $this->connectioncontrol->db;

	}
	
	public function CloseConnection()
	{
		$this->connectioncontrol->Close();
	}
	

}

?>